Micron Document
____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|


🬧 The NomadNet Encyclopedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

πŸ” Search

Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―

Visual Basic .NET
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwcaVisual Basic .NET, Γ¨ la nuova versione di mwcqVisual Basic. Le principali novitΓ  di questo nuovo linguaggio di sviluppo del mwcgFramework .NET sono che Γ¨ basato su oggetti e che Γ¨ compilato.

Il Visual Basic, come il suo corrispondente mwdaC#, Γ¨ un punto di congiunzione di tante iniziative e tecnologie di sviluppo Microsoft del passato come ad esempio: il mwdqCOM e gli mwdgActiveX, sostituiti con assembly e classi di oggetti completamente mwdwgestiti: per mweagestiti (dall'inglese mweqmanaged) si intende che la gestione della memoria Γ¨ gestita autonomamente dal mweggarbage collector. Con Visual Basic Γ¨ possibile realizzare: applicazioni mwewWindows Forms, web, servizi, componenti COM, MQ, Web service ed anche destinate a dispositivi mobili tramite l'uso delle librerie del mwfaCompact framework.

Microsoft ha annunciato che non ci saranno piΓΉ importanti aggiornamenti per Visual Basic .NET.

Visual Basic Γ¨ uno dei linguaggi principali di mwfwVisual Studio, la suite per programmatori di Microsoft, basata interamente sul Framework .NET.

Contents

β€’ Storia
β€’ Esempi
β€’ Hello, World
β€’ Delegate
β€’ Note
β€’ Bibliografia

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Storia

Visual Basic .NET (VB 7)

mwhaVisual Basic .NET (internamente la versione 7.0), è nato nel 2002. È stato il primo Visual Basic sviluppato sul Framework .NET 1.0. Benché commercialmente sia il successore del VB6, in realtà l'unico punto in comune è la sintassi VB like.

Questa versione supportava il mwhgparadigma di programmazione ad oggetti con caratteristiche quali l'ereditarietΓ , il polimorfismo e l'incapsulamento. Si aggiunge una gestione avanzata della memoria (grazie al mwhwgarbage collector) e dei puntatori, tutto in un ambiente completamente gestito e mwiaa tipizzazione forte.

Oltre tipi e librerie piΓΉ classiche ritrovabili in ogni linguaggio come IO, formattazione di stringhe, calcoli matematici e statistici e quant'altro, questa versione del linguaggio supportava giΓ  il threading, la reflection, gli attributi customizzabili, la programmazione distribuita tramite remoting e la programmazione di oggetti COM.

Visual Basic .NET 2003 (VB 7.1)

Con la versione del Framework 1.1, Microsoft ha rilasciato una nuova versione di Visual Studio (Visual Studio 2003) e con esso le nuove versioni dei linguaggi inclusi, fra cui Visual Basic .NET 2003 (internamente la versione 7.1). Oltre ad aver migliorato alcune librerie in termini di performance, come il compilatore in background, in questa versione Γ¨ stato aggiunto il supporto per il .NET Compact Framework permettendo ai programmatori di sviluppare applicazioni per i dispositivi mwjqmobile.

Visual Basic 2005 (VB 8)

Nel 2005, con la versione 2.0 del Framework, venne rilasciata la nuova versione di Visual Basic, con il nome commerciale di mwkaVisual Basic 2005 che per la prima volta abbandona il suffisso .NET. In questa versione si aggiungono moltissime nuove caratteristiche di programmazione, tra le quali:

β€’ i generics
β€’ gli eventi custom
β€’ nuovi oggetti kernel per la sincronizzazione dei threads
β€’ le classi parziali, con l'istruzione mwlgPartial Class
β€’ lo pseudo-namespace mwmaMy che semplifica l'accesso a molti metodi di uso comune
β€’ il qualificatore globale di mwmgnamespace (mwmwglobal)
β€’ i commenti XML per commentare i propri metodi
β€’ l'overload degli operatori
β€’ la definizione di nuovi tipi fra cui gli mwnwunsigned e i mwoanullable.

In piΓΉ, sono comparse nuove parole chiave:

β€’ mwpaContinue
β€’ mwpgIsNot
β€’ mwqaMy
β€’ mwqgTryCast
β€’ mwraUsing

Inoltre, centinaia di aggiornamenti sono stati eseguiti sui metodi del framework distribuiti nei vari namespace come IO, Security, Cryptography, Threading e altri.

Visual Basic 2008 (VB 9)

mwsaVisual Basic 2008 Γ¨ uscito in anticipo il 19 novembre 2007 ed Γ¨ stato implementato sul Framework .NET 3.5 con il rilascio di Visual Studio 2008. Questa versione del linguaggio aggiunge caratteristiche innovative come i letterali XML e mwsgLINQ. Proprio per il supporto a LINQ sono state introdotte moltissime novitΓ , fra le quali i mwswtipi anonimi, l'inferenza dei tipi, le espressioni mwtalambda e i metodi di estensione. Inoltre Γ¨ stato integrato l'utilizzo dei nuovi Framework implementati dalla versione 3.0 di .NET fra cui:

β€’ mwtwEntity Framework, che permette di lavorare con un modello a oggetti anche sui database;
β€’ mwuqWindows Presentation Foundation, un nuovo namespace contenente classi per il disegno di interfacce utente windows o web;
β€’ mwuwWindows Communication Foundation, un nuovo namespace che rende piΓΉ semplice utilizzare le tecniche di programmazione distribuita;
β€’ Workflow Foundation, per realizzare applicazioni o assembly di workflow, poi implementabili in ogni applicazione .NET;
β€’ Card space, una nuova tecnologia per la centralizzazione dei login su sistemi web.

Inoltre, Γ¨ stato esteso l'utilizzo del linguaggio tramite l'uso del nuovo mwwaIDE di sviluppo mwwqVisual Studio 2008, per realizzare applicazioni con la tecnologia mwwgSilverlight basata su mwwwWPF.

Visual Basic 2010 (VB 10)

Nell'aprile 2010, Microsoft ha rilasciato Visual Basic 2010.

Visual Basic 2012 (VB 11)

Visual Basic 2012 Γ¨ stato rilasciato insieme .NET Framework 4.5.

Visual Basic 2015 (VB 14)

Visual Basic 2015 (nome in codice VB "14.0") Γ¨ stato rilasciato contemporaneamente all'uscita di Visual Studio 2015.

Visual Basic 2017 (VB 15)

Visual Basic 2017 (nome in codice VB "15.0") Γ¨ stato rilasciato contemporaneamente all'uscita di Visual Studio 2017 (15.33, 15.5, 15.8). Introduce nuove tecniche di mwzarefactoring che consentono di organizzare il mwzqcodice sorgente con una sola azione.cite-ref-2[2]cite-ref-docs-microsoft-com-3-0[3]

Visual Basic 2019 (VB 16)

Visual Basic 2019 (nome in codice VB "16.0") è stato rilasciato contemporaneamente all'uscita di Visual Studio 2019. È la prima versione di Visual Basic focalizzata sul nuovo framework di Microsoft mwca.NET Core.cite-ref-docs-microsoft-com-3-1[3]

Esempi

Hello, World

Esempio in Visual Basic classico (6.0 e precedenti):

Private Sub Command1_Click()
MsgBox "Hello, world!"
End Sub

Esempio in Visual Basic .NET con la nuova classe MessageBox:

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
MessageBox.Show("Hello, world!", "Titolo esempio", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub

Esempio in Visual Basic .NET con la vecchia funzione Msgbox:

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Msgbox("Hello, world")
End Sub

Nell'esempio sopra riportato è indicata la nuova sintassi che sostituisce il classico mw8gMsgBox. La visualizzazione del messaggio è effettuata dal metodo mw8wShow della classe mw9aMessageBox. Notare che normalmente per invocare un metodo è necessario creare un'mw9qistanza di una classe. In questo caso, tuttavia, il metodo, essendo di tipo mw9gShared (cioè mw9wcondiviso), può essere chiamato anche senza istanziare la classe. La vecchia sintassi mw-aMsgBox è, comunque, supportata anche dalla nuova piattaforma di sviluppo. Per mw-qistanziare una classe si intende creare un mw-goggetto del tipo definito dalla classe.

La compatibilità tra la versione classica (VB 6) e le nuove versioni VB.NET è garantita dalla libreria mw-amw-qMicrosoft.VisualBasic. Tale libreria è stata pensata per garantire un graduale passaggio dalla vecchia modalità di programmazione verso le nuove componenti del linguaggio VB.NET e del framework .NET. È pertanto sconsigliato l'uso di tale libreria nella realizzazione di nuovi progetti.

Delegate

I mwaqadelegate sono puntatori a funzioni utilizzabili nella gestione degli eventi, utili nella programmazione asincrona.

Module Module1
Public Delegate Sub dTest
Sub Main()
Dim temp as new dTest(AddressOf Test)
'invocazione sincrona
temp.invoke
'invocazione asincrona
temp.BeginInvoke(New AsyncCallback(AddressOf EndTest), temp)
Console.WriteLine("OK")
Console.ReadLine
End Sub
Sub Test()
'Qui c'Γ¨ un'elaborazione lunga
End Sub
Sub EndTest(ByVal ar As iAsyncResult)
ar.AsyncState.EndInvoke(ar)
Console.Writeline("EndTest")
End Sub
End Module

Caratteristiche del linguaggio

Come per il suo corrispondente C#, i codici sorgenti scritti in VB.NET sono normalmente compilati secondo i criteri mwaxsJIT: la trasformazione in codice macchina (ovvero eseguito direttamente dalla CPU) avviene su richiesta solo all'atto di caricamento ed esecuzione del programma. In prima istanza il codice sorgente viene convertito dal framework in un codice intermedio detto mwaxwCIL e solo all'esecuzione del programma il mwax0CLR converte il CIL in codice macchina, man mano che viene eseguito. Una seconda possibilitΓ  Γ¨ la cosiddetta mwax4compilazione Ngen, che permette di convertire tutto il codice CIL in codice macchina in una volta sola.

FunzionalitΓ  di Visual Basic .NET non presenti in C#

β€’ Le variabili possono essere dichiarate con il costrutto WithEvents;
β€’ Auto-wireup degli eventi: VB.NET usa il comando Handles per gestirli;
β€’ Uso della struttura With ... End With per l'accesso diretto alle funzionalitΓ  di un oggetto;
β€’ Metodo IsNumeric per verificare se una stringa puΓ² essere convertita (casting) in un numero;
β€’ XML Literals;cite-ref-4[4]
β€’ Dichiarazione diretta delle date usando la sintassi #1/1/2000#;
β€’ Moduli (analoghi a classi statiche);
β€’ Accesso diretto ai membri di un Modulo (Vedi mway0Now come esempio)
β€’ Il namespace mway8My.*;cite-ref-5[5]
β€’ I componenti COM e l'interoperabilitΓ  sono piΓΉ performanti su oggetti a runtime,cite-ref-early-binding-6-0[6]
β€’ I Namespaces possono essere incorporati nel progetto in modo da non doverli richiamare ogni volta nei vari file;
β€’ Eccezioni in-line filtrati da un'mwazsespressione booleana, usando il blocco "When expression".cite-ref-7[7];
β€’ Sintassi differente su mwaaeLinq To Objects dove, fra l'altro, Γ¨ possibile omettere l'istruzione "select" finale per ottenere la lista di oggetti direttamente.

Passaggio da VB6 a VB.NET

BenchΓ© molti programmatori abbiano creduto a un aggiornamento del linguaggio, in realtΓ  VB.NET e VB non sono compatibili. Nell'IDE di sviluppo Γ¨ integrato un convertitore che, perΓ², garantisce una conversione parziale del codice. Nella maggior parte dei casi, Γ¨ necessaria una totale revisione dello stesso dal momento che la tecnica di programmazione Γ¨ passata da essere imperativa (anche se basata su eventi) a essere orientata agli oggetti.

Per usare VB.NET

VB.NET Γ¨ un linguaggio di libero utilizzo e il relativo mwaaycompilatore Γ¨ scaricabile dall'area download del sito mwaacMicrosoft. Inoltre, Γ¨ disponibile anche una versione completamente gratuita di mwaagVisual Studio detta mwaakExpress. Inoltre dalla versione Visual Studio 2013 esiste anche l'edizione gratuita denominata "Community" la quale presenta alcune limitazioni in ambito commerciale, ma per il resto identica alla versione "Professional". La scrittura di codice Visual Basic puΓ² essere fatta anche semplicemente utilizzando un qualsiasi editor di testo.

Esiste inoltre un compilatore mwaasopen source e multipiattaforma che, grazie al progetto mwaawMono, Γ¨ in grado di compilare su ambienti diversi da mwaa0Windows come mwaa4macOS e mwaa8Linux.

Note

cite-note-11. mwabymwabcmwabgHistory of Visual Basic, su mwabkmax-visual-basic.com, Copyright Β© 2009-2010 Max Visual Basic. mwaboURL consultato il 21 gennaio 2014 mwabs(archiviato dall'mwabwurl originale il 15 gennaio 2014).
cite-note-22. ↑ mwaca(mwacemwaciEN) jawiddis, mwacmmwacqVisual Studio 2017 15.9 Release Notes, su mwacudocs.microsoft.com. mwacyURL consultato il 14 febbraio 2020.
cite-note-docs-microsoft-com-33. ↑ mwacw(mwac0mwac4EN) KathleenDollard, mwac8mwadaWhat's new for Visual Basic - Visual Basic, su mwadedocs.microsoft.com. mwadiURL consultato il 14 febbraio 2020.
cite-note-44. ↑ mwadyJonathan Allen, mwadcmwadgDoes C# Need VB9's XML Literals?, su mwadkinfoq.com. mwadoURL consultato il 13 gennaio 2009.
cite-note-55. ↑ mwad4mwad8msdn.microsoft.com, mwaeahttps://msdn.microsoft.com/en-us/library/5btzf5yk.aspxmwaee Titolo mancante per url mwaeiurl (aiuto).
cite-note-early-binding-66. ↑ mwaegmwaekmwaeoEarly vs. Late Binding, su mwaesvisualbasic.about.com mwaew(archiviato dall'mwae0url originale il 25 febbraio 2015).
cite-note-77. ↑ MSDN: mwafeTry...Catch...Finally Statement (Visual Basic)

Bibliografia

β€’ mwafumwafyVisual Basic 2010 (2010) ISBN 978-88-203-4469-6 - D. Bochicchio, C. Civera, M. De Sanctis, R. Golia, A.Leoncini, M. Leoncini, S. Mostarda
β€’ Visual Basic 2019 D. Bochicchio, C. Civera M. Leoncini, S. Mostarda, M. Tumiati ISBN 978-88-203-8466-1

Voci correlate

β€’ mwaf0ASP.NET
β€’ mwaf8Gambas
β€’ mwageMicrosoft .NET
β€’ mwagmVisual Basic

Altri progetti

Altri progetti

β€’ Wikimedia Commons

β€’ Wikimedia Commons contiene immagini o altri file su Visual Basic .NET

Collegamenti esterni

β€’ (EN) Sito ufficiale, su docs.microsoft.com.
β€’ (JA) Sito ufficiale, su docs.microsoft.com.
β€’ (EN) Blog ufficiale, su devblogs.microsoft.com.
β€’ Repository sorgenti di Visual Basic .NET, su github.com.
β€’ Repository sorgenti di Visual Basic .NET, su github.com.
β€’ (EN) Sito di segnalazione bug, su github.com.
β€’ mwagoSito Microsoft su VB.NET, su microsoft.com.
β€’ mwagw(EN) Sito Microsoft su VB.NET, su msdn.microsoft.com.
β€’ mwag4User Group Italiano dot NET, su ugidotnet.org.
β€’ mwaha(EN) Implementazione di VB.NET su Mono, su go-mono.org. URL consultato il 4 maggio 2005 (archiviato dall'url originale il 23 ottobre 2005).